[INFO] fetching crate openclaw-scan 0.1.1...
[INFO] testing openclaw-scan-0.1.1 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] extracting crate openclaw-scan 0.1.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate openclaw-scan 0.1.1
[INFO] finished tweaking crates.io crate openclaw-scan 0.1.1
[INFO] tweaked toml for crates.io crate openclaw-scan 0.1.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate openclaw-scan 0.1.1 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate openclaw-scan 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 82c1cf84d86bc341ef643f562c1e4966d6884867a25cab9e6cd34605ef453938
[INFO] running `Command { std: "docker" "start" "-a" "82c1cf84d86bc341ef643f562c1e4966d6884867a25cab9e6cd34605ef453938", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "82c1cf84d86bc341ef643f562c1e4966d6884867a25cab9e6cd34605ef453938", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82c1cf84d86bc341ef643f562c1e4966d6884867a25cab9e6cd34605ef453938", kill_on_drop: false }`
[INFO] [stdout] 82c1cf84d86bc341ef643f562c1e4966d6884867a25cab9e6cd34605ef453938
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 49bef7772df0c703d14d7470180252dcacf7f603304702634d1e027e2e774ed2
[INFO] running `Command { std: "docker" "start" "-a" "49bef7772df0c703d14d7470180252dcacf7f603304702634d1e027e2e774ed2", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling openclaw-scan v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.35s
[INFO] running `Command { std: "docker" "inspect" "49bef7772df0c703d14d7470180252dcacf7f603304702634d1e027e2e774ed2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "49bef7772df0c703d14d7470180252dcacf7f603304702634d1e027e2e774ed2", kill_on_drop: false }`
[INFO] [stdout] 49bef7772df0c703d14d7470180252dcacf7f603304702634d1e027e2e774ed2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 85d9008113d64e8be9045ea000991e0e08755249467ef1b2d9502cb0b3c37285
[INFO] running `Command { std: "docker" "start" "-a" "85d9008113d64e8be9045ea000991e0e08755249467ef1b2d9502cb0b3c37285", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling openclaw-scan v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 21.15s
[INFO] running `Command { std: "docker" "inspect" "85d9008113d64e8be9045ea000991e0e08755249467ef1b2d9502cb0b3c37285", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "85d9008113d64e8be9045ea000991e0e08755249467ef1b2d9502cb0b3c37285", kill_on_drop: false }`
[INFO] [stdout] 85d9008113d64e8be9045ea000991e0e08755249467ef1b2d9502cb0b3c37285
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5ff25abcb9bbd46d32c9d838b4f6e06ac11df183480b8437de6e3cc776e253fc
[INFO] running `Command { std: "docker" "start" "-a" "5ff25abcb9bbd46d32c9d838b4f6e06ac11df183480b8437de6e3cc776e253fc", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/openclaw_scan-c2b467ff10ab01bb)
[INFO] [stdout] 
[INFO] [stdout] running 110 tests
[INFO] [stdout] test cli::tests::cli_debug_assert ... ok
[INFO] [stdout] test cli::tests::severity_filter_default_is_low ... ok
[INFO] [stdout] test cli::tests::min_severity_medium_parsed ... ok
[INFO] [stdout] test cli::tests::json_flag_parsed ... ok
[INFO] [stdout] test finding::tests::finding_builder_chain ... ok
[INFO] [stdout] test cli::tests::no_color_flag_parsed ... ok
[INFO] [stdout] test finding::tests::finding_serialises_to_json ... ok
[INFO] [stdout] test cli::tests::severity_filter_to_severity_roundtrip ... ok
[INFO] [stdout] test cli::tests::multiple_paths_parsed ... ok
[INFO] [stdout] test finding::tests::category_all_complete ... ok
[INFO] [stdout] test finding::tests::redact_keeps_prefix ... ok
[INFO] [stdout] test cli::tests::category_filter_to_category ... ok
[INFO] [stdout] test finding::tests::severity_ordering ... ok
[INFO] [stdout] test finding::tests::redact_minimum_masking_guarantee ... ok
[INFO] [stdout] test cli::tests::verbose_flag_parsed ... ok
[INFO] [stdout] test output::terminal::tests::format_category_counts_all_zero_shows_dash ... ok
[INFO] [stdout] test output::terminal::tests::format_totals_empty_report ... ok
[INFO] [stdout] test output::json::tests::report_json_contains_severity_labels ... ok
[INFO] [stdout] test output::json::tests::report_json_severity_sorted_most_severe_first ... ok
[INFO] [stdout] test output::json::tests::report_serialises_to_valid_json ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_empty ... ok
[INFO] [stdout] test finding::tests::severity_penalty_values ... ok
[INFO] [stdout] test output::terminal::tests::format_totals_mixed ... ok
[INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_empty_report ... ok
[INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_full_report ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_67 ... ok
[INFO] [stdout] test cli::tests::ignore_path_repeatable ... ok
[INFO] [stdout] test finding::tests::redact_short_value ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_full ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_half ... ok
[INFO] [stdout] test output::terminal::tests::truncate_short_string_unchanged ... ok
[INFO] [stdout] test paths::tests::detect_framework_claude ... ok
[INFO] [stdout] test paths::tests::detect_framework_openclaw ... ok
[INFO] [stdout] test output::terminal::tests::truncate_long_string_gets_ellipsis ... ok
[INFO] [stdout] test paths::tests::explicit_path_nonexistent ... ok
[INFO] [stdout] test report::tests::grade_boundaries ... ok
[INFO] [stdout] test paths::tests::framework_hint_display ... ok
[INFO] [stdout] test paths::tests::explicit_path_must_be_directory ... ok
[INFO] [stdout] test report::tests::report_sorts_by_severity ... ok
[INFO] [stdout] test paths::tests::looks_like_install_empty_dir ... ok
[INFO] [stdout] test paths::tests::looks_like_install_with_marker ... ok
[INFO] [stdout] test paths::tests::resolve_returns_error_when_nothing_found ... ok
[INFO] [stdout] test paths::tests::explicit_path_valid_dir ... ok
[INFO] [stdout] test report::tests::report_counts_by_severity ... ok
[INFO] [stdout] test report::tests::report_has_findings_at ... ok
[INFO] [stdout] test report::tests::score_does_not_go_below_zero ... ok
[INFO] [stdout] test report::tests::score_no_findings ... ok
[INFO] [stdout] test report::tests::score_info_findings_not_penalised ... ok
[INFO] [stdout] test scanner::config::tests::detects_dangerous_skip_permissions ... ok
[INFO] [stdout] test scanner::config::tests::detects_bash_with_metachar ... ok
[INFO] [stdout] test scanner::config::tests::detects_mcp_always_allow ... ok
[INFO] [stdout] test scanner::config::tests::detects_wildcard_bash ... ok
[INFO] [stdout] test scanner::config::tests::detects_bare_bash_allow ... ok
[INFO] [stdout] test scanner::config::tests::invalid_json_produces_low_finding ... ok
[INFO] [stdout] test scanner::config::tests::no_finding_for_safe_bash_rule ... ok
[INFO] [stdout] test scanner::config::tests::no_finding_for_false_skip_permissions ... ok
[INFO] [stdout] test scanner::config::tests::detects_wildcard_write ... ok
[INFO] [stdout] test scanner::config::tests::warns_no_deny_rules ... ok
[INFO] [stdout] test report::tests::score_single_critical ... ok
[INFO] [stdout] test scanner::dependencies::tests::deceptive_url_is_unofficial ... ok
[INFO] [stdout] test scanner::dependencies::tests::is_blocklisted_case_insensitive ... ok
[INFO] [stdout] test scanner::dependencies::tests::detects_blocklisted_plugin ... ok
[INFO] [stdout] test scanner::dependencies::tests::detects_unofficial_source ... ok
[INFO] [stdout] test scanner::dependencies::tests::no_finding_for_clean_plugin ... ok
[INFO] [stdout] test scanner::dependencies::tests::unofficial_github_org_is_flagged ... ok
[INFO] [stdout] test scanner::dependencies::tests::official_github_org_is_trusted ... ok
[INFO] [stdout] test scanner::dependencies::tests::no_finding_for_official_source ... ok
[INFO] [stdout] test scanner::hooks::tests::detects_outbound_curl ... ok
[INFO] [stdout] test scanner::history::tests::no_findings_on_empty_dir ... ok
[INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_false ... ok
[INFO] [stdout] test scanner::history::tests::detects_excessive_backups ... ok
[INFO] [stdout] test scanner::hooks::tests::detects_shell_expansion ... ok
[INFO] [stdout] test scanner::hooks::tests::no_hooks_key_produces_no_findings ... ok
[INFO] [stdout] test scanner::history::tests::no_finding_for_small_history ... ok
[INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_true ... ok
[INFO] [stdout] test scanner::hooks::tests::detects_dangerously_skip_permissions ... ok
[INFO] [stdout] test scanner::hooks::tests::no_finding_for_localhost_curl ... ok
[INFO] [stdout] test scanner::hooks::tests::no_finding_for_safe_hook ... ok
[INFO] [stdout] test scanner::network::tests::detects_bare_ip_url ... ok
[INFO] [stdout] test scanner::network::tests::is_bare_ip_address_true ... ok
[INFO] [stdout] test scanner::network::tests::detects_http_external_url ... ok
[INFO] [stdout] test scanner::network::tests::sanitize_url_no_credentials_unchanged ... ok
[INFO] [stdout] test scanner::network::tests::is_bare_ip_address_false ... ok
[INFO] [stdout] test scanner::network::tests::no_finding_for_localhost_ip ... ok
[INFO] [stdout] test scanner::network::tests::no_finding_for_http_localhost ... ok
[INFO] [stdout] test scanner::network::tests::sanitize_url_strips_credentials ... ok
[INFO] [stdout] test scanner::permissions::tests::scanner_returns_ok ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_when_files_absent ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_credentials ... ok
[INFO] [stdout] test scanner::history::tests::detects_large_history ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_history ... ok
[INFO] [stdout] test scanner::network::tests::no_finding_for_https_url ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_for_secure_credentials ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_gitlab_token ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_anthropic_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_github_pat ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_private_key_header ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_google_ai_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_openai_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_openrouter_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_aws_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_xai_key ... ok
[INFO] [stdout] test scanner::tests::scan_context_subpath_existing ... ok
[INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_env_variable_reference ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_database_url_with_credentials ... ok
[INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_empty_line ... ok
[INFO] [stdout] test scanner::secrets::tests::finding_has_correct_line_number ... ok
[INFO] [stdout] test scanner::tests::scan_context_subpath_nonexistent ... ok
[INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_safe_json ... ok
[INFO] [stdout] test scanner::secrets::tests::evidence_is_redacted ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 110 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ocls-b8932ffd1dc4bab1)
[INFO] [stdout] 
[INFO] [stdout] running 114 tests
[INFO] [stdout] test cli::tests::category_filter_to_category ... ok
[INFO] [stdout] test cli::tests::cli_debug_assert ... ok
[INFO] [stdout] test cli::tests::multiple_paths_parsed ... ok
[INFO] [stdout] test cli::tests::ignore_path_repeatable ... ok
[INFO] [stdout] test cli::tests::severity_filter_to_severity_roundtrip ... ok
[INFO] [stdout] test cli::tests::no_color_flag_parsed ... ok
[INFO] [stdout] test cli::tests::verbose_flag_parsed ... ok
[INFO] [stdout] test finding::tests::category_all_complete ... ok
[INFO] [stdout] test finding::tests::finding_builder_chain ... ok
[INFO] [stdout] test finding::tests::finding_serialises_to_json ... ok
[INFO] [stdout] test cli::tests::severity_filter_default_is_low ... ok
[INFO] [stdout] test finding::tests::redact_minimum_masking_guarantee ... ok
[INFO] [stdout] test finding::tests::severity_penalty_values ... ok
[INFO] [stdout] test finding::tests::redact_short_value ... ok
[INFO] [stdout] test finding::tests::redact_keeps_prefix ... ok
[INFO] [stdout] test output::json::tests::report_json_contains_severity_labels ... ok
[INFO] [stdout] test finding::tests::severity_ordering ... ok
[INFO] [stdout] test output::json::tests::report_json_severity_sorted_most_severe_first ... ok
[INFO] [stdout] test cli::tests::json_flag_parsed ... ok
[INFO] [stdout] test cli::tests::min_severity_medium_parsed ... ok
[INFO] [stdout] test output::terminal::tests::format_category_counts_all_zero_shows_dash ... ok
[INFO] [stdout] test output::terminal::tests::format_totals_empty_report ... ok
[INFO] [stdout] test output::terminal::tests::format_totals_mixed ... ok
[INFO] [stdout] test output::json::tests::report_serialises_to_valid_json ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_67 ... ok
[INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_full_report ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_empty ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_half ... ok
[INFO] [stdout] test output::terminal::tests::score_bar_full ... ok
[INFO] [stdout] test output::terminal::tests::print_does_not_panic_on_empty_report ... ok
[INFO] [stdout] test paths::tests::detect_framework_claude ... ok
[INFO] [stdout] test paths::tests::detect_framework_openclaw ... ok
[INFO] [stdout] test output::terminal::tests::truncate_short_string_unchanged ... ok
[INFO] [stdout] test output::terminal::tests::truncate_long_string_gets_ellipsis ... ok
[INFO] [stdout] test paths::tests::explicit_path_nonexistent ... ok
[INFO] [stdout] test paths::tests::explicit_path_must_be_directory ... ok
[INFO] [stdout] test paths::tests::explicit_path_valid_dir ... ok
[INFO] [stdout] test paths::tests::framework_hint_display ... ok
[INFO] [stdout] test report::tests::report_has_findings_at ... ok
[INFO] [stdout] test report::tests::grade_boundaries ... ok
[INFO] [stdout] test paths::tests::looks_like_install_with_marker ... ok
[INFO] [stdout] test paths::tests::looks_like_install_empty_dir ... ok
[INFO] [stdout] test report::tests::score_does_not_go_below_zero ... ok
[INFO] [stdout] test paths::tests::resolve_returns_error_when_nothing_found ... ok
[INFO] [stdout] test report::tests::score_no_findings ... ok
[INFO] [stdout] test report::tests::report_sorts_by_severity ... ok
[INFO] [stdout] test report::tests::score_info_findings_not_penalised ... ok
[INFO] [stdout] test scanner::config::tests::detects_bash_with_metachar ... ok
[INFO] [stdout] test report::tests::report_counts_by_severity ... ok
[INFO] [stdout] test scanner::config::tests::detects_bare_bash_allow ... ok
[INFO] [stdout] test report::tests::score_single_critical ... ok
[INFO] [stdout] test scanner::config::tests::detects_dangerous_skip_permissions ... ok
[INFO] [stdout] test scanner::config::tests::invalid_json_produces_low_finding ... ok
[INFO] [stdout] test scanner::config::tests::no_finding_for_safe_bash_rule ... ok
[INFO] [stdout] test scanner::config::tests::detects_mcp_always_allow ... ok
[INFO] [stdout] test scanner::dependencies::tests::detects_unofficial_source ... ok
[INFO] [stdout] test scanner::dependencies::tests::is_blocklisted_case_insensitive ... ok
[INFO] [stdout] test scanner::dependencies::tests::no_finding_for_clean_plugin ... ok
[INFO] [stdout] test scanner::dependencies::tests::no_finding_for_official_source ... ok
[INFO] [stdout] test scanner::dependencies::tests::detects_blocklisted_plugin ... ok
[INFO] [stdout] test scanner::dependencies::tests::official_github_org_is_trusted ... ok
[INFO] [stdout] test scanner::dependencies::tests::deceptive_url_is_unofficial ... ok
[INFO] [stdout] test scanner::config::tests::warns_no_deny_rules ... ok
[INFO] [stdout] test scanner::config::tests::detects_wildcard_bash ... ok
[INFO] [stdout] test scanner::config::tests::no_finding_for_false_skip_permissions ... ok
[INFO] [stdout] test scanner::config::tests::detects_wildcard_write ... ok
[INFO] [stdout] test scanner::dependencies::tests::unofficial_github_org_is_flagged ... ok
[INFO] [stdout] test scanner::history::tests::detects_excessive_backups ... ok
[INFO] [stdout] test scanner::history::tests::no_finding_for_small_history ... ok
[INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_true ... ok
[INFO] [stdout] test scanner::hooks::tests::detects_shell_expansion ... ok
[INFO] [stdout] test scanner::history::tests::no_findings_on_empty_dir ... ok
[INFO] [stdout] test scanner::hooks::tests::no_finding_for_safe_hook ... ok
[INFO] [stdout] test scanner::hooks::tests::no_finding_for_localhost_curl ... ok
[INFO] [stdout] test scanner::hooks::tests::detects_dangerously_skip_permissions ... ok
[INFO] [stdout] test scanner::hooks::tests::detects_outbound_curl ... ok
[INFO] [stdout] test scanner::hooks::tests::no_hooks_key_produces_no_findings ... ok
[INFO] [stdout] test scanner::network::tests::detects_bare_ip_url ... ok
[INFO] [stdout] test scanner::network::tests::no_finding_for_http_localhost ... ok
[INFO] [stdout] test scanner::network::tests::sanitize_url_no_credentials_unchanged ... ok
[INFO] [stdout] test scanner::network::tests::sanitize_url_strips_credentials ... ok
[INFO] [stdout] test scanner::permissions::tests::scanner_returns_ok ... ok
[INFO] [stdout] test scanner::network::tests::no_finding_for_https_url ... ok
[INFO] [stdout] test scanner::network::tests::no_finding_for_localhost_ip ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_credentials ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::detects_world_readable_history ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_for_secure_credentials ... ok
[INFO] [stdout] test scanner::permissions::tests::unix_tests::no_finding_when_files_absent ... ok
[INFO] [stdout] test scanner::hooks::tests::contains_shell_expansion_false ... ok
[INFO] [stdout] test scanner::network::tests::detects_http_external_url ... ok
[INFO] [stdout] test scanner::network::tests::is_bare_ip_address_false ... ok
[INFO] [stdout] test scanner::network::tests::is_bare_ip_address_true ... ok
[INFO] [stdout] test scanner::history::tests::detects_large_history ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_openrouter_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_gitlab_token ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_anthropic_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_openai_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_google_ai_key ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_github_pat ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_database_url_with_credentials ... ok
[INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_empty_line ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_private_key_header ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_xai_key ... ok
[INFO] [stdout] test scanner::secrets::tests::evidence_is_redacted ... ok
[INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_env_variable_reference ... ok
[INFO] [stdout] test scanner::secrets::tests::detects_aws_key ... ok
[INFO] [stdout] test scanner::secrets::tests::finding_has_correct_line_number ... ok
[INFO] [stdout] test scanner::secrets::tests::no_false_positive_on_safe_json ... ok
[INFO] [stdout] test scanner::tests::scan_context_subpath_nonexistent ... ok
[INFO] [stdout] test tests::filter_report_keeps_all_when_threshold_is_info ... ok
[INFO] [stdout] test tests::filter_report_recomputes_totals ... ok
[INFO] [stdout] test tests::filter_report_removes_low_when_threshold_is_medium ... ok
[INFO] [stdout] test scanner::tests::scan_context_subpath_existing ... ok
[INFO] [stdout] test tests::filter_report_removes_everything_when_threshold_is_critical_and_no_criticals ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 114 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests openclaw_scan
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/finding.rs - finding::redact (line 189) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "5ff25abcb9bbd46d32c9d838b4f6e06ac11df183480b8437de6e3cc776e253fc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ff25abcb9bbd46d32c9d838b4f6e06ac11df183480b8437de6e3cc776e253fc", kill_on_drop: false }`
[INFO] [stdout] 5ff25abcb9bbd46d32c9d838b4f6e06ac11df183480b8437de6e3cc776e253fc
